added component shuffling test
authorØyvind Kolås <ok@src.gnome.org>
Fri, 26 Aug 2005 13:53:31 +0000 (13:53 +0000)
committerØyvind Kolås <ok@src.gnome.org>
Fri, 26 Aug 2005 13:53:31 +0000 (13:53 +0000)
ChangeLog
tests/Makefile.am
tests/rgb_to_bgr.c [new file with mode: 0644]

index b887dd83d741e174787dd61141cbd7e0ab45ed34..aee8929fd33915b505f1e9f7bcede8546d3b864a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-26  Øyvind Kolås  <pippin@gimp.org>
+
+       * tests/rgb_to_bgr.c: added component shuffling test
+       * tests/Makefile.am: added rgb_to_bgr to TESTS
+
 2005-08-25  Øyvind Kolås  <pippin@gimp.org>
 
        * docs/index-static.html.in: removed done things from TODO list.
index 8d9c370198f03fb214ac6068a46b0160d8ef7d2c..6a03c1c0b4d4455d8ea5a4dbfcd617f262a66069 100644 (file)
@@ -2,6 +2,7 @@ TESTS =                         \
        float_to_u8             \
        grayscale_to_rgb        \
        u8_to_float             \
+       rgb_to_bgr              \
        rgb_to_lab_to_rgb       \
        rgb_to_ycbcr            \
        rgb_to_ycbcr_to_rgb     \
@@ -12,6 +13,7 @@ TESTS =                               \
 float_to_u8_SOURCES         = float_to_u8.c
 u8_to_float_SOURCES         = u8_to_float.c
 grayscale_to_rgb_SOURCES    = grayscale_to_rgb.c
+rgb_to_bgr_SOURCES          = rgb_to_bgr.c
 rgb_to_lab_to_rgb_SOURCES   = rgb_to_lab_to_rgb.c
 srgb_to_lab_u8_SOURCES      = srgb_to_lab_u8.c
 rgb_to_ycbcr_SOURCES        = rgb_to_ycbcr.c
diff --git a/tests/rgb_to_bgr.c b/tests/rgb_to_bgr.c
new file mode 100644 (file)
index 0000000..49117a2
--- /dev/null
@@ -0,0 +1,93 @@
+/* babl - dynamically extendable universal pixel conversion library.
+ * Copyright (C) 2005, Øyvind Kolås.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+
+#include <math.h>
+#include "babl.h"
+#include "babl-internal.h"
+
+#define PIXELS    3
+#define TOLERANCE 0
+
+unsigned char source_buf [PIXELS*3]=
+  {10,20,30,
+   30,30,30,
+   40,50,60};
+
+unsigned char reference_buf [PIXELS*3]=
+  {30,20,10,
+   30,30,30,
+   60,50,40};
+
+unsigned char destination_buf [PIXELS*3];
+
+int
+test (void)
+{
+  Babl *fish;
+  int   i;
+  int   OK=1;
+  
+  fish = babl_fish (
+    babl_format_new (
+      "foo",
+      babl_model ("rgb"),
+      babl_type ("u8"),
+      babl_component ("R"),
+      babl_component ("G"),
+      babl_component ("B"),
+      NULL
+    ),
+    babl_format_new (
+      "bar",
+      babl_model ("rgb"),
+      babl_type ("u8"),
+      babl_component ("B"),
+      babl_component ("G"),
+      babl_component ("R"),
+      NULL
+    )
+  );
+
+  babl_process (fish, source_buf, destination_buf, PIXELS);
+  
+  for (i=0; i<PIXELS * 3; i++)
+    {
+      if (abs(destination_buf[i] - reference_buf[i]) > TOLERANCE)
+        {
+          babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+                      i, i,i%3,    i,i/3,  destination_buf[i], reference_buf[i]);
+          OK=0;
+        }
+    }
+  if (!OK)
+    return -1;
+  return 0;
+}
+
+int
+main (int    argc,
+      char **argv)
+{
+  babl_init ();
+  if (test())
+    return -1;
+  babl_destroy ();
+  return 0;
+}